home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_13_10 / jagger / check1.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-08-28  |  827 b   |  39 lines

  1. /* Listing 2, check.c, version 1 */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. #include "check.h"    /* Listing 1 */
  6.  
  7. struct Category
  8.    {
  9.    const char * name;
  10.    void (*handler)(void);
  11.    };
  12.  
  13. static void Exit(void) 
  14.    { exit(EXIT_FAILURE); }
  15. static void CarryOn(void) { }
  16.  
  17. static struct Category Severity[] =
  18.    {
  19.    { "UNDEFINED", Exit },
  20.    { "WARNING",    CarryOn    },
  21.    };
  22.  
  23.  
  24. void DB_Trap(const char pred[], 
  25.                const char call[], 
  26.                int sev )
  27.    {
  28.    FILE * errLog = stderr;
  29.  
  30.    fprintf(errLog, "\n----Debug-test-failed----\n");
  31.    fprintf(errLog, "CALL: %s\n", call);
  32.    fprintf(errLog, "TYPE: %s\n", Severity[sev].name);
  33.    fprintf(errLog, "TEST: %s\n", pred);
  34.    fprintf(errLog, "-------------------------\n");
  35.    fflush(errLog);
  36.    Severity[sev].handler();
  37.    }
  38.  
  39.